home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / glass / glass.lha / GLASS / uflat / total.ds < prev    next >
Text File  |  1991-06-18  |  2KB  |  58 lines

  1. || File: nkerngl.ds
  2. || Author: C. van Reeuwijk
  3.  
  4. orig == (file:symbol, line:inum);
  5.  
  6. || Definitions.
  7. def ::=
  8.     DefAtom atorig:orig atnm:symbol atptyp:[partyp] atctyp:typ |    || atom
  9.     DefBasetype baseorig:orig basename:symbol |            || basetype
  10.     DefVal valorig:orig valnm:symbol valtyp:typ valas:val |    || def
  11.     DefCon conorig:orig defcon:val conas:val  |            || defcon = conas
  12.     DefTyp typorig:orig typnm:symbol typas:typ ;    || type
  13.  
  14. || Possible types of parameters types
  15. partyp ::=
  16.     PTInt |
  17.     PTFlo |
  18.     PTStr |
  19.     PTBool ;
  20.  
  21. || Type expressions
  22. typ ::=
  23.     TypBase basenm:symbol |        || basetype
  24.     TypIn ityp:typ |            || ?ityp
  25.     TypOut otyp:typ |            || !otyp
  26.     TypUni uityp:typ uotyp:typ |    || uityp => uotyp
  27.     TypNon nontyp:typ |            || non-directional system
  28.     TypProd ptypes:[typ] |        || Carthesian product.
  29.     TypSym sym:symbol;            || symbolic type
  30.  
  31. || Formal connection patterns.
  32. formcon ::=
  33.     FCList l:[formcon] |        || list of formal connections
  34.     FCSym sym:symbol;            || formal connection symbol
  35.  
  36. || parameters of parameterized atoms
  37. parval ::=
  38.     ParInt i:inum |            || int
  39.     ParFlo f:fnum |            || float
  40.     ParStr s:symbol |            || string
  41.     ParBool b:bool ;            || bool
  42.  
  43. || Value expressions.
  44. || Atoms and apply-s have a source file and line.
  45. val ::=
  46.     VSym symorig:orig sym:symbol |    || Symbol
  47.     VLambda lpar:formcon lval:val |    || Lambda abstraction
  48.     VSigma spar:formcon sval:val |    || Sigma abstraction
  49.     VApply aval:val apar:val |        || Apply (asval aspar)
  50.     VWhere wdefs:[def] wval:val |    || local context
  51.     VList l:[val] |            || List expression
  52.     VAppset aps:[val] |            || appset
  53.     || Atom application
  54.     VAtom atorig:orig atnm:symbol atvpar:[parval] atcpar:val |
  55.     VSyn synlist:[val];            || Synonym expression
  56. || Variable context
  57. ctx == ( defs:[def] );
  58.